home *** CD-ROM | disk | FTP | other *** search
/ GameStar 1998 November (Bonus) / GAMESTAR11B.ISO / ENCYC99 / MM / T621387A.DCR / Scripts_31_Class Scrollbar.ls < prev    next >
Encoding:
Text File  |  1998-06-29  |  3.5 KB  |  110 lines

  1. property internalCursorGod, UpButton, DownButton, Slider, ScrolledThing, ScrollButtonGod, backgroundSprite, objectRect, cursorGod, mouseIsDown, objectHidden
  2.  
  3. on areYouThere me, xLoc
  4.   if objectHidden then
  5.     return 0
  6.   end if
  7.   if inside(xLoc, objectRect) then
  8.     areYouThere(internalCursorGod, xLoc)
  9.     return 1
  10.   else
  11.     if mouseIsDown then
  12.       return areYouThere(internalCursorGod, xLoc)
  13.     end if
  14.   end if
  15.   areYouThere(internalCursorGod, xLoc)
  16.   return 0
  17. end
  18.  
  19. on mouseEvent me, xEvent, xLoc
  20.   case xEvent of
  21.     #mouseEnter:
  22.       turnON(ScrolledThing)
  23.       turnON(Slider)
  24.     #mouseDown:
  25.       set mouseIsDown to 1
  26.     #mouseUp:
  27.       set mouseIsDown to 0
  28.     #mouseGone:
  29.       turnOff(ScrolledThing)
  30.       turnOff(Slider)
  31.       set mouseIsDown to 0
  32.   end case
  33. end
  34.  
  35. on newMember me, xMember
  36.   if changeScrolledMember(ScrolledThing, xMember) then
  37.     reveal(me)
  38.   else
  39.     hide(me)
  40.   end if
  41. end
  42.  
  43. on hide me
  44.   set objectHidden to 1
  45.   hide(UpButton)
  46.   hide(DownButton)
  47.   hide(Slider)
  48.   set the visible of sprite backgroundSprite to 0
  49. end
  50.  
  51. on reveal me
  52.   set objectHidden to 0
  53.   reveal(UpButton)
  54.   reveal(DownButton)
  55.   reveal(Slider)
  56.   set the visible of sprite backgroundSprite to 1
  57. end
  58.  
  59. on new me, styleString, xBackGround, xUpSprite, xDownSprite, xGrabberSprite, xScrolledSprite, xLineHeight
  60.   set backgroundSprite to xBackGround
  61.   puppetSprite(backgroundSprite, 1)
  62.   set UpButton to new(script "Class PushyPictButton", xUpSprite)
  63.   set DownButton to new(script "Class PushyPictButton", xDownSprite)
  64.   set upPictList to initUpPicts(me, styleString)
  65.   set downPictList to initDownPicts(me, styleString)
  66.   setPicts(UpButton, upPictList)
  67.   setPicts(DownButton, downPictList)
  68.   set ScrollButtonGod to new(script "Class ScrollButtonGod")
  69.   linkUp(ScrollButtonGod, UpButton, DownButton)
  70.   set sliderRect to rect(the left of sprite xUpSprite, the bottom of sprite xUpSprite - 1, the right of sprite xUpSprite, the top of sprite xDownSprite + 1)
  71.   set grabberOn to member (styleString && "GrabberOn")
  72.   set grabberOff to member (styleString && "GrabberOff")
  73.   set Slider to new(script "Class VerticalSlider", sliderRect, xGrabberSprite, grabberOn, grabberOff)
  74.   set pageHeight to the bottom of sprite xDownSprite - the top of sprite xUpSprite
  75.   set ScrolledThing to new(script "Class ScrolledThing", xScrolledSprite, xLineHeight, pageHeight, the bottom of sprite xDownSprite)
  76.   linkUp(UpButton, ScrolledThing, #scrollUp, #overUp, #overNone)
  77.   linkUp(DownButton, ScrolledThing, #scrollDown, #overDown, #overNone)
  78.   if linkUp(ScrolledThing, ScrollButtonGod, Slider) then
  79.     reveal(me)
  80.   else
  81.     hide(me)
  82.   end if
  83.   linkUp(Slider, ScrolledThing)
  84.   set internalCursorGod to new(script "Class CursorGod")
  85.   subscribe(UpButton, internalCursorGod)
  86.   subscribe(DownButton, internalCursorGod)
  87.   subscribe(Slider, internalCursorGod)
  88.   set objectRect to rect(the left of sprite xUpSprite, the top of sprite xUpSprite, the right of sprite xUpSprite, the bottom of sprite xDownSprite)
  89.   return me
  90. end
  91.  
  92. on subscribe me, xCursor
  93.   set cursorGod to xCursor
  94.   subscribe(cursorGod, me)
  95. end
  96.  
  97. on initUpPicts me, xString
  98.   set upMember to member (xString && "UpButtonUp")
  99.   set downMember to member (xString && "UpButtonDown")
  100.   set offMember to member (xString && "UpButtonOff")
  101.   return [upMember, upMember, downMember, offMember]
  102. end
  103.  
  104. on initDownPicts me, xString
  105.   set upMember to member (xString && "DownButtonUp")
  106.   set downMember to member (xString && "DownButtonDown")
  107.   set offMember to member (xString && "DownButtonOff")
  108.   return [upMember, upMember, downMember, offMember]
  109. end
  110.